home *** CD-ROM | disk | FTP | other *** search
/ Tech Win 1999 February / TECH Win 02-1999 Disc A.iso / ols / lzh / htmlmac2.lzh / HTMLMAC2.MAC < prev    next >
Encoding:
Text File  |  1995-10-24  |  5.0 KB  |  226 lines

  1. /////////////////////////////////////////////////////////////////////
  2. // html macro ver 0.52
  3. // hidemaru macro "htmlmac2.mac"
  4. // saito-soft (saito tomonobu) 1995.10.24
  5. // Mail to: saito-to@jed.uec.ac.jp
  6.  
  7. /////////////////////////////////////////////////////////////////////
  8. // path setting
  9. $macro_path = hidemarudir + "\\";
  10. // $macro_path = "c:\\user\\hmacro\\";
  11. $dic_path = hidemarudir + "\\";
  12. // $dic_path = "c:\\user\\hmacro\\";
  13.  
  14. /////////////////////////////////////////////////////////////////////
  15. // start setting
  16. $callmenu = "main";
  17.  
  18. /////////////////////////////////////////////////////////////////////
  19. // main
  20. Main:
  21. call MenuSub $callmenu;
  22. $comstr = $$return;
  23.  
  24. // 属性情報取り出し
  25. call StrCut $comstr, 2;
  26. #action = val($$return);
  27.  
  28. // 特殊処理
  29. if (#action == 0) {
  30.     call StrCut $comstr, 3;
  31.     $id = $$return;
  32.     // はじめに
  33.     if ($id == "start") {
  34.         $title = input("タイトルを入力してください");
  35.         if (result != no) {
  36.             gofiletop;
  37.             insert "<html>\n<head>\n<title>";
  38.             insert $title + "</title>\n</head>\n<body>\n";
  39.             gofileend;
  40.             insert "\n</body>\n</html>\n";
  41.             gofiletop;
  42.             down 5;
  43.         }
  44.     }
  45.     // 箇条書き
  46.     if ($id == "kajyo") {
  47.         execmacro $macro_path + "htmlkj.mac";
  48.         endmacro;
  49.     }
  50. }
  51. // サブメニュー呼び出し
  52. else if (#action == 1) {
  53.     call StrCut $comstr, 3;
  54.     $callmenu = $$return;
  55.     goto Main;
  56. }
  57. // オプション無単独タグ
  58. else if (#action == 2) {
  59.     call StrCut $comstr, 3;
  60.     insert "<" + $$return + ">\n";
  61.     endmacro;
  62. }
  63. // オプション無前後タグ
  64. else if (#action == 3) {
  65.     call StrCut $comstr, 3;
  66.     $top = "<" + $$return + ">";
  67.     call StrCut $comstr, 4;
  68.     $end = "<" + $$return + ">";
  69.     if (selecting == true) {
  70.         call SelectSub $top, $end;
  71.         endmacro;
  72.     }
  73.     else {
  74.         insertfix $top + $end;
  75.         #len = strlen($top);
  76.         right #len;
  77.         endmacro;
  78.     }
  79. }
  80. // オプション有単独タグ
  81. else if (#action == 4) {
  82.     call StrCut $comstr, 3;
  83.     $tag = $$return;
  84.     call StrCut $comstr, 4;
  85.     call OptionSub $$return;
  86.     if ($$return != "") {
  87.         insert "<" + $tag + $$return + ">\n";
  88.         endmacro;
  89.     }
  90. }
  91. // オプション有前後タグ
  92. else if (#action == 5) {
  93.     call StrCut $comstr, 3;
  94.     $tag = $$return;
  95.     call StrCut $comstr, 4;
  96.     $end = "<" + $$return + ">";
  97.     call StrCut $comstr, 5;
  98.     call OptionSub $$return;
  99.     if ($$return != "") {
  100.         $top = "<" + $tag + $$return + ">";
  101.         if (selecting == true) {
  102.             call SelectSub $top, $end;
  103.             endmacro;
  104.         }
  105.         else {
  106.             insertfix $top + $end;
  107.             #len = strlen($top);
  108.             right #len;
  109.             endmacro;
  110.         }
  111.     }
  112. }
  113. // エラー
  114. else {
  115.     message "エラーです";
  116.     endmacro;
  117. }
  118.  
  119. /////////////////////////////////////////////////////////////////////
  120. // end of macro
  121. endmacro;
  122.  
  123. /////////////////////////////////////////////////////////////////////
  124. // menu sub
  125. MenuSub:
  126.     $$dic = $dic_path + "htmlmenu.dic";
  127.     ##menus = getininum($$dic, $$1, "num");
  128.     ##i = 0;
  129.     while (##i < ##menus) {
  130.         $$base[##i] = getinistr($$dic, $$1, str(##i));
  131.         call StrCut $$base[##i], 1;
  132.         $$menu[##i] = $$return;
  133.         ##i = ##i + 1;
  134.     }
  135.     menuarray $$menu, ##menus;
  136.     if (result == no) endmacro;
  137.     return $$base[result-1];
  138.  
  139. /////////////////////////////////////////////////////////////////////
  140. // string cut sub (by :)
  141. StrCut:
  142.     $$org = $$1;
  143.     ##err = no;
  144.     while (##2) {
  145.         if ($$org == "") {
  146.             ##err = yes;
  147.             break;
  148.         }
  149.         ##colon = strstr($$org, ":");
  150.         if (##colon == -1) {
  151.             $$cut = $$org;
  152.             $$org = "";
  153.         }
  154.         else {
  155.             $$cut = leftstr($$org, ##colon);
  156.             $$org = rightstr($$org, strlen($$org)-##colon-1);
  157.         }
  158.         ##2 = ##2 - 1;
  159.     }
  160.     if (##err) return "";
  161.     return $$cut;
  162.     
  163. /////////////////////////////////////////////////////////////////////
  164. // selecting insert sub
  165. SelectSub:
  166.     escape;
  167.     moveto selendx, selendy;
  168.     insertfix $$2;
  169.     moveto seltopx, seltopy;
  170.     insertfix $$1;
  171.     moveto selendx + strlen($$1 + $$2), selendy;
  172.     return;
  173.  
  174. /////////////////////////////////////////////////////////////////////
  175. // option making sub
  176. OptionSub:
  177.     $$dic = $dic_path + "htmlopt.dic";
  178.     ##opts = getininum($$dic, $$1, "num");
  179.     ##i = 0;
  180.     $$option = "";
  181.     while (##i < ##opts) {
  182.         $$base = getinistr($$dic, $$1, str(##i));
  183.         call StrCut $$base, 1;
  184.         $$mes = $$return;
  185.         call StrCut $$base, 2;
  186.         ##act = val($$return);
  187.         call StrCut $$base, 3;
  188.         $$tag = $$return;
  189.         
  190.         // 文字列及び数値
  191.         if (##act == 0) {
  192.             $$text = input($$mes);
  193.             if (result != no)
  194.                 $$option = $$option + " " + $$tag + $$text;
  195.         }
  196.         // 引用符付き文字列
  197.         if (##act == 1) {
  198.             $$text = input($$mes);
  199.             if (result != no)
  200.                 $$option = $$option + " " + $$tag + "\"" + $$text + "\"";
  201.         }
  202.         // 有無
  203.         if (##act == 2) {
  204.             question $$mes;
  205.             if (result == yes)
  206.                 $$option = $$option + " " + $$tag;
  207.         }
  208.         // 選択
  209.         if (##act == 3) {
  210.             call StrCut $$base, 4;
  211.             ##num = val($$return) + 1;
  212.             ##j = 0;
  213.             while (##j < ##num) {
  214.                 call StrCut $$base, 5 + ##j;
  215.                 $$menu[##j+1] = $$return;
  216.                 ##j = ##j +1;
  217.             }
  218.             $$menu[0] = $$mes;
  219.             menuarray $$menu, ##num;
  220.             if (result > 1)
  221.                 $$option = $$option + " " + $$tag + $$menu[result-1];
  222.         }    
  223.         ##i = ##i + 1;
  224.     }
  225.     return $$option;    
  226.